Telecommunications service companies are interested in capturing and collecting call data from their networks. In addition to handling routing tasks, switches and other network devices typically generate one or more CDRs for every call that they handle. A CDR is a data record containing call information such as an originating number, a destination number, and/or the start and end times of a call. CDRs are normally transmitted from telecom network elements to computer systems for correlation, storage in databases, and use in a variety of applications, such as network traffic analysis, fraud investigation, and billing automation. It is also possible to supplement CDRs using additional data not available from hardware devices. By performing a lookup operation in a third party database such as a Line Identification Database or customer database, one could determine, for instance, whether a telephone number belongs to a residence or business and the mailing address associated with the number. The supplemented CDR thus has information not only about the call itself, but also about the individuals who participated in the call.
One challenge within this process is adequately handling the large volumes of call data, which might potentially represent hundreds of CDRs generated by a network each minute. For example, U.S. Pat. No. 6,327,350, entitled “Methods and Systems for Collecting and Processing Signaling System 7 (SS7) Message Signal Units (MSUs)” (the “'350 patent”), describes a system for collecting and processing SS7 probe message signaling units (MSUs) including a network interface for copying MSUs from an SS7 signaling link or a TCP/IP signaling link. A CDR generator communicates with the link interface to receive the copied MSUs and to parse the MSUs to extract desired parameters from the MSUs. An application interface kit receives commands from an application to control the flow of MSU parameters to the application in real time. While the '350 patent provides a means of retrieving large numbers of calls from an SS7 probe, it does not log all CDRs from a network, since it only processes data from an SS7 probe and filters CDR data based on desired parameters. Therefore, the usefulness of the CDR data is limited to the parameters by which the data was filtered. What is needed is a system suitable for capturing a CDR from every single call across all telecommunications hardware without losing data or slowing the computer system responsible for capture.
Another challenge within this process is the retrieval of supplemental third party information associated with a CDR. For example, U.S. Pat. No. 6,385,301, entitled “Data Preparation for Traffic Track Usage Measurement” (the “'301 patent”), describes a monitoring system that captures and processes messages from SS7 probe links to compile CDRs for all interoffice call attempts. The CDRs are uploaded into a relational database. A data preparation operation enhances the records for further processing. This data preparation operation involves translating information in the records into more useful forms, using external reference data regarding the monitored network. For example, the data preparation translates SS7 point codes or NPA-NXX codes in the records to textual names of the originating and terminating offices. The data, so prepared, is uploaded to an on-line analytical processing application. While this '301 patent provides a method of preparing SS7 data from one of the CDRs and obtaining additional information from an external database, it neither discusses the system nor addresses optimizing the performance of such a process. Looking up supplemental data for every single CDR record also places an incredible burden on the system. What is needed is a means of optimizing the capture of this third-party CDR data.
Furthermore, previous work in this area has primarily dealt with collecting CDR data and storing it in a database. Optimizing retrieval of the data from long-term storage is rarely discussed. What is needed is a means of optimizing retrieval of CDR data given its application of use.
Accordingly, we have determined that it is desirable to provide a method and system to collect all or substantially all CDRs without losing substantial data, and preferably without any data.
We have also determined that it is desirable to minimize the amount of reading and writing to a CDR database.
We have also determined that it is desirable to optimize retrieval of CDR data from long-term storage.
We have also determined that it is desirable to facilitate the presentation of relevant CDR data in a highly flexible and useful manner.
The present disclosure is directed to solving one or more of the problems described above.